home *** CD-ROM | disk | FTP | other *** search
-
-
-
- mmmmssssggggbbbb((((DDDD4444)))) mmmmssssggggbbbb((((DDDD4444))))
-
-
-
- NNNNAAAAMMMMEEEE
- _mmmm_ssss_gggg_bbbb - STREAMS message block structure
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_tttt_yyyy_pppp_eeee_ssss_...._hhhh_>>>>
- _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_ssss_tttt_rrrr_eeee_aaaa_mmmm_...._hhhh_>>>>
- _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_dddd_dddd_iiii_...._hhhh_>>>>
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- A STREAMS message is made up of one or more message blocks, referenced by
- a pointer to a _mmmm_ssss_gggg_bbbb structure. When a message is on a queue, all fields
- are read-only to drivers and modules.
-
- UUUUSSSSAAAAGGGGEEEE
- SSSSttttrrrruuuuccccttttuuuurrrreeee DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
- The _mmmm_ssss_gggg_bbbb structure is defined as type _mmmm_bbbb_llll_kkkk______tttt and contains the following
- members:
-
- _ssss_tttt_rrrr_uuuu_cccc_tttt _mmmm_ssss_gggg_bbbb _****_bbbb______nnnn_eeee_xxxx_tttt_;;;; _////_**** _nnnn_eeee_xxxx_tttt _mmmm_eeee_ssss_ssss_aaaa_gggg_eeee _oooo_nnnn _qqqq_uuuu_eeee_uuuu_eeee _****_////
- _ssss_tttt_rrrr_uuuu_cccc_tttt _mmmm_ssss_gggg_bbbb _****_bbbb______pppp_rrrr_eeee_vvvv_;;;; _////_**** _pppp_rrrr_eeee_vvvv_iiii_oooo_uuuu_ssss _mmmm_eeee_ssss_ssss_aaaa_gggg_eeee _oooo_nnnn _qqqq_uuuu_eeee_uuuu_eeee _****_////
- _ssss_tttt_rrrr_uuuu_cccc_tttt _mmmm_ssss_gggg_bbbb _****_bbbb______cccc_oooo_nnnn_tttt_;;;; _////_**** _nnnn_eeee_xxxx_tttt _bbbb_llll_oooo_cccc_kkkk _iiii_nnnn _mmmm_eeee_ssss_ssss_aaaa_gggg_eeee _****_////
- _uuuu_cccc_hhhh_aaaa_rrrr______tttt _****_bbbb______rrrr_pppp_tttt_rrrr_;;;; _////_**** _1111_ssss_tttt _uuuu_nnnn_rrrr_eeee_aaaa_dddd _dddd_aaaa_tttt_aaaa _bbbb_yyyy_tttt_eeee _oooo_ffff _bbbb_uuuu_ffff_ffff_eeee_rrrr _****_////
- _uuuu_cccc_hhhh_aaaa_rrrr______tttt _****_bbbb______wwww_pppp_tttt_rrrr_;;;; _////_**** _1111_ssss_tttt _uuuu_nnnn_wwww_rrrr_iiii_tttt_tttt_eeee_nnnn _dddd_aaaa_tttt_aaaa _bbbb_yyyy_tttt_eeee _oooo_ffff _bbbb_uuuu_ffff_ffff_eeee_rrrr _****_////
- _ssss_tttt_rrrr_uuuu_cccc_tttt _dddd_aaaa_tttt_aaaa_bbbb _****_bbbb______dddd_aaaa_tttt_aaaa_pppp_;;;; _////_**** _pppp_oooo_iiii_nnnn_tttt_eeee_rrrr _tttt_oooo _dddd_aaaa_tttt_aaaa _bbbb_llll_oooo_cccc_kkkk _****_////
- _uuuu_cccc_hhhh_aaaa_rrrr______tttt _bbbb______bbbb_aaaa_nnnn_dddd_;;;; _////_**** _mmmm_eeee_ssss_ssss_aaaa_gggg_eeee _pppp_rrrr_iiii_oooo_rrrr_iiii_tttt_yyyy _****_////
- _uuuu_ssss_hhhh_oooo_rrrr_tttt______tttt _bbbb______ffff_llll_aaaa_gggg_;;;; _////_**** _uuuu_ssss_eeee_dddd _bbbb_yyyy _ssss_tttt_rrrr_eeee_aaaa_mmmm _hhhh_eeee_aaaa_dddd _****_////
- The _bbbb______nnnn_eeee_xxxx_tttt and _bbbb______pppp_rrrr_eeee_vvvv pointers are used to link messages together on a
- _qqqq_uuuu_eeee_uuuu_eeee(D4). These fields can be used by drivers and modules to create
- linked lists of messages.
-
- The _bbbb______cccc_oooo_nnnn_tttt pointer links message blocks together when a message is
- composed of more than one block. Drivers and modules can use this field
- to create complex messages from single message blocks.
-
- The _bbbb______rrrr_pppp_tttt_rrrr and _bbbb______wwww_pppp_tttt_rrrr pointers describe the valid data region in the
- associated data buffer. The _bbbb______rrrr_pppp_tttt_rrrr field points to the first unread byte
- in the buffer and the _bbbb______wwww_pppp_tttt_rrrr field points to the next byte to be written
- in the buffer.
-
- The _bbbb______dddd_aaaa_tttt_aaaa_pppp field points to the data block [see _dddd_aaaa_tttt_aaaa_bbbb(D4)] associated
- with the message block. This field should never be changed by modules or
- drivers.
-
- The _bbbb______bbbb_aaaa_nnnn_dddd field contains the priority band associated with the message.
- Normal priority messages and high priority messages have _bbbb______bbbb_aaaa_nnnn_dddd set to
- zero. High priority messages are high priority by virtue of their
- message type. This field can be used to alter the queuing priority of
- the message. The higher the priority band, the closer to the head of the
- queue the message is placed.
-
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- mmmmssssggggbbbb((((DDDD4444)))) mmmmssssggggbbbb((((DDDD4444))))
-
-
-
- The _bbbb______ffff_llll_aaaa_gggg field contains a bitmask of flags that can be set to alter the
- way the stream head will process the message. Valid flags are:
-
- _MMMM_SSSS_GGGG_MMMM_AAAA_RRRR_KKKK The last byte in the message is ``marked.'' This condition
- is testable from user level via the _IIII______AAAA_TTTT_MMMM_AAAA_RRRR_KKKK _iiii_oooo_cccc_tttt_llll(2).
-
- RRRREEEEFFFFEEEERRRREEEENNNNCCCCEEEESSSS
- _aaaa_llll_llll_oooo_cccc_bbbb(D3), _dddd_aaaa_tttt_aaaa_bbbb(D4), _eeee_ssss_bbbb_aaaa_llll_llll_oooo_cccc(D3), _ffff_rrrr_eeee_eeee_bbbb(D3), _ffff_rrrr_eeee_eeee______rrrr_tttt_nnnn(D4),
- _mmmm_eeee_ssss_ssss_aaaa_gggg_eeee_ssss(D5)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-